package com.yunsc.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yunsc.common.utils.PageResult;
import com.yunsc.product.dto.GoodsServiceDTO;
import com.yunsc.product.entity.YunscGoodsServiceEntity;

import java.util.List;
import java.util.Map;

/**
 * 商品服务与承诺记录表
 *
 * @author adan
 * @email 2028038953@qq.com
 * @date 2024-04-04 21:28:42
 */
public interface YunscGoodsServiceService extends IService<YunscGoodsServiceEntity> {

    /**
     * 分页查询商品服务与承诺记录表
     * @param params 查询参数
     * @param storeId 当前门店ID
     * @return 分页结果
     */
    PageResult<YunscGoodsServiceEntity> queryGoodsServiceList(Map<String, Object> params, Integer storeId);

    /**
     * 根据商品ID查询商品服务与承诺记录表
     * @param goodsId 商品ID
     * @param storeId 当前门店ID
     * @return 商品服务与承诺记录表列表
     */
    List<YunscGoodsServiceEntity> queryGoodsServiceByGoodsId(Integer goodsId, Integer storeId);

    /**
     * 查询所有商品服务与承诺记录表
     * @param storeId 当前门店ID
     * @return 商品服务与承诺记录表列表
     */
    List<YunscGoodsServiceEntity> queryGoodsServiceAll(Integer storeId);

    /**
     * 添加商品服务与承诺记录表
     * @param goodsService 商品服务与承诺记录表
     * @param storeId 当前门店ID
     */
    void addGoodsService(GoodsServiceDTO goodsService, Integer storeId);

    /**
     * 修改商品服务与承诺记录表
     * @param goodsService 商品服务与承诺记录表
     * @param storeId 当前门店ID
     */
    void editGoodsServiceById(GoodsServiceDTO goodsService, Integer storeId);

    /**
     * 删除商品服务与承诺记录表
     * @param serviceId 商品服务与承诺记录表ID
     * @param storeId 当前门店ID
     */
    void removeGoodsServiceById(Integer serviceId, Integer storeId);

    /**
     * 更新商品服务与承诺记录表状态
     *
     * @param goodsService 商品服务与承诺记录表
     * @param storeId      当前门店ID
     * @return
     */
    boolean updateGoodsServiceState(GoodsServiceDTO goodsService, Integer storeId);
}

